Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Sparse PCA</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Sparse_PCA"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Sparse_PCA rootpage-Sparse_PCA skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Sparse PCA</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p><b>Sparse principal component analysis</b> (SPCA or sparse PCA) is a technique used in statistical analysis and, in particular, in the analysis of <a href="Multivariate_analysis" class="mw-redirect" title="Multivariate analysis">multivariate</a> data sets. It extends the classic method of <a href="Principal_component_analysis" title="Principal component analysis">principal component analysis</a> (PCA) for the reduction of dimensionality of data by introducing sparsity structures to the input variables.
</p><p>A particular disadvantage of ordinary PCA is that the principal components are usually linear combinations of all input variables. SPCA overcomes this disadvantage by finding components that are linear combinations of just a few input variables (SPCs). This means that some of the coefficients of the linear combinations defining the SPCs, called <i>loadings</i>,<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>note 1<span class="cite-bracket">]</span></a></sup> are equal to zero. The number of nonzero loadings is called the <i>cardinality</i> of the SPC.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Mathematical_formulation">Mathematical formulation</h2></div>
<p>Consider a data <a href="Matrix_(mathematics)" title="Matrix (mathematics)">matrix</a>, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle X}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>X</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle X}</annotation>
</semantics>
</math></span><img src="./68baa052181f707c662844a465bfeeb135e82bab.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.98ex; height:2.176ex;" alt="{\displaystyle X}" loading="lazy"></span>, where each of the <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle p}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>p</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle p}</annotation>
</semantics>
</math></span><img src="./81eac1e205430d1f40810df36a0edffdc367af36.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; margin-left: -0.089ex; width:1.259ex; height:2.009ex;" alt="{\displaystyle p}" loading="lazy"></span> columns represent an input variable, and each of the <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>n</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle n}</annotation>
</semantics>
</math></span><img src="./a601995d55609f2d9f5e233e36fbe9ea26011b3b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.395ex; height:1.676ex;" alt="{\displaystyle n}" loading="lazy"></span> rows represents an independent sample from data population. One assumes each column of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle X}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>X</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle X}</annotation>
</semantics>
</math></span><img src="./68baa052181f707c662844a465bfeeb135e82bab.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.98ex; height:2.176ex;" alt="{\displaystyle X}" loading="lazy"></span> has mean zero, otherwise one can subtract column-wise mean from each element of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle X}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>X</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle X}</annotation>
</semantics>
</math></span><img src="./68baa052181f707c662844a465bfeeb135e82bab.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.98ex; height:2.176ex;" alt="{\displaystyle X}" loading="lazy"></span>.
Let <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Sigma ={\frac {1}{n-1}}X^{\top }X}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi mathvariant="normal">Σ<!-- Σ --></mi>
<mo>=</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mn>1</mn>
<mrow>
<mi>n</mi>
<mo>−<!-- − --></mo>
<mn>1</mn>
</mrow>
</mfrac>
</mrow>
<msup>
<mi>X</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">⊤<!-- ⊤ --></mi>
</mrow>
</msup>
<mi>X</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \Sigma ={\frac {1}{n-1}}X^{\top }X}</annotation>
</semantics>
</math></span><img src="./8fd354178263354a8853f1a8c87d64aba6112785.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -2.005ex; width:16.498ex; height:5.343ex;" alt="{\displaystyle \Sigma ={\frac {1}{n-1}}X^{\top }X}" loading="lazy"></span> be the empirical <a href="Covariance_matrix" title="Covariance matrix">covariance matrix</a> of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle X}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>X</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle X}</annotation>
</semantics>
</math></span><img src="./68baa052181f707c662844a465bfeeb135e82bab.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.98ex; height:2.176ex;" alt="{\displaystyle X}" loading="lazy"></span>, which has dimension <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle p\times p}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>p</mi>
<mo>×<!-- × --></mo>
<mi>p</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle p\times p}</annotation>
</semantics>
</math></span><img src="./67e6de741a3aa8176f5a487de8e8f602aa75c5e4.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; margin-left: -0.089ex; width:5.269ex; height:2.009ex;" alt="{\displaystyle p\times p}" loading="lazy"></span>.
</p><p>Given an integer <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle k}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>k</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle k}</annotation>
</semantics>
</math></span><img src="./c3c9a2c7b599b37105512c5d570edc034056dd40.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.211ex; height:2.176ex;" alt="{\displaystyle k}" loading="lazy"></span> with <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle 1\leq k\leq p}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mn>1</mn>
<mo>≤<!-- ≤ --></mo>
<mi>k</mi>
<mo>≤<!-- ≤ --></mo>
<mi>p</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle 1\leq k\leq p}</annotation>
</semantics>
</math></span><img src="./2356b80db7fdb9c72394f696a6b696610d75104c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:9.74ex; height:2.509ex;" alt="{\displaystyle 1\leq k\leq p}" loading="lazy"></span>, the sparse PCA problem can be formulated as maximizing the variance along a direction represented by vector <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle v\in \mathbb {R} ^{p}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>v</mi>
<mo>∈<!-- ∈ --></mo>
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="double-struck">R</mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mi>p</mi>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle v\in \mathbb {R} ^{p}}</annotation>
</semantics>
</math></span><img src="./5211e2a7d81c7c652e972e5d7c42699e0d5bbbd3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.706ex; height:2.343ex;" alt="{\displaystyle v\in \mathbb {R} ^{p}}" loading="lazy"></span> while constraining its cardinality:
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}\max \quad &amp;v^{T}\Sigma v\\{\text{subject to}}\quad &amp;\left\Vert v\right\Vert _{2}=1\\&amp;\left\Vert v\right\Vert _{0}\leq k.\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mo movablelimits="true" form="prefix">max</mo>
<mspace width="1em"></mspace>
</mtd>
<mtd>
<msup>
<mi>v</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>T</mi>
</mrow>
</msup>
<mi mathvariant="normal">Σ<!-- Σ --></mi>
<mi>v</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mtext>subject to</mtext>
</mrow>
<mspace width="1em"></mspace>
</mtd>
<mtd>
<msub>
<mrow>
<mo symmetric="true">‖</mo>
<mi>v</mi>
<mo symmetric="true">‖</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
<mo>=</mo>
<mn>1</mn>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<msub>
<mrow>
<mo symmetric="true">‖</mo>
<mi>v</mi>
<mo symmetric="true">‖</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
<mo>≤<!-- ≤ --></mo>
<mi>k</mi>
<mo>.</mo>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}\max \quad &amp;v^{T}\Sigma v\\{\text{subject to}}\quad &amp;\left\Vert v\right\Vert _{2}=1\\&amp;\left\Vert v\right\Vert _{0}\leq k.\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./43e43fd583a7f4f0f857a75ada6adbcaeb40aefd.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -4.171ex; width:22.368ex; height:9.509ex;" alt="{\displaystyle {\begin{aligned}\max \quad &amp;v^{T}\Sigma v\\{\text{subject to}}\quad &amp;\left\Vert v\right\Vert _{2}=1\\&amp;\left\Vert v\right\Vert _{0}\leq k.\end{aligned}}}" loading="lazy"></span><span id="math_Eq._1" class="reference nourlexpansion" style="font-weight:bold;">Eq. 1</span></dd></dl>
<p>The first constraint specifies that <i>v</i> is a unit vector. In the second constraint, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \left\Vert v\right\Vert _{0}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mrow>
<mo symmetric="true">‖</mo>
<mi>v</mi>
<mo symmetric="true">‖</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \left\Vert v\right\Vert _{0}}</annotation>
</semantics>
</math></span><img src="./1bbb8d8b94f4d8c2f12e72938565c1124a875170.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:4.507ex; height:3.009ex;" alt="{\displaystyle \left\Vert v\right\Vert _{0}}" loading="lazy"></span> represents the <a href="L0_norm" class="mw-redirect" title="L0 norm"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \ell _{0}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>ℓ<!-- ℓ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \ell _{0}}</annotation>
</semantics>
</math></span><img src="./d18f7cb79dd41b63d6aca9ec6b957c225a0aea81.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.024ex; height:2.509ex;" alt="{\displaystyle \ell _{0}}" loading="lazy"></span> pseudo-norm</a> of <i>v</i>, which is defined as the number of its non-zero components. So the second constraint specifies that the number of non-zero components in <i>v</i> is less than or equal to <i>k</i>, which is typically an integer that is much smaller than dimension <i>p</i>. The optimal value of <b><a href="#math_Eq._1">Eq. 1</a></b> is known as the <i>k</i>-sparse largest <a href="Eigenvalue" class="mw-redirect" title="Eigenvalue">eigenvalue</a>.
</p><p>If one takes <i>k=p</i>, the problem reduces to the ordinary <a href="Principal_component_analysis" title="Principal component analysis">PCA</a>, and the optimal value becomes the largest eigenvalue of covariance matrix <i>Σ</i>.
</p><p>After finding the optimal solution <i>v</i>, one deflates <i>Σ</i> to obtain a new matrix
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Sigma _{1}=\Sigma -(v^{T}\Sigma v)vv^{T},}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi mathvariant="normal">Σ<!-- Σ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<mo>=</mo>
<mi mathvariant="normal">Σ<!-- Σ --></mi>
<mo>−<!-- − --></mo>
<mo stretchy="false">(</mo>
<msup>
<mi>v</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>T</mi>
</mrow>
</msup>
<mi mathvariant="normal">Σ<!-- Σ --></mi>
<mi>v</mi>
<mo stretchy="false">)</mo>
<mi>v</mi>
<msup>
<mi>v</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>T</mi>
</mrow>
</msup>
<mo>,</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \Sigma _{1}=\Sigma -(v^{T}\Sigma v)vv^{T},}</annotation>
</semantics>
</math></span><img src="./c3efb0a1fdfdaff97f1c9d3e7489b951935eadf4.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:21.772ex; height:3.176ex;" alt="{\displaystyle \Sigma _{1}=\Sigma -(v^{T}\Sigma v)vv^{T},}" loading="lazy"></span></dd></dl>
<p>and iterate this process to obtain further principal components. However, unlike PCA, sparse PCA cannot guarantee that different principal components are <a href="Orthogonal" class="mw-redirect" title="Orthogonal">orthogonal</a>. In order to achieve orthogonality, additional constraints must be enforced.
</p><p>The following equivalent definition is in matrix form.
Let <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle V}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>V</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle V}</annotation>
</semantics>
</math></span><img src="./af0f6064540e84211d0ffe4dac72098adfa52845.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.787ex; height:2.176ex;" alt="{\displaystyle V}" loading="lazy"></span> be a <i>p×p</i> symmetric matrix, one can rewrite the sparse PCA problem as
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}\max \quad &amp;Tr(\Sigma V)\\{\text{subject to}}\quad &amp;Tr(V)=1\\&amp;\Vert V\Vert _{0}\leq k^{2}\\&amp;Rank(V)=1,V\succeq 0.\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mo movablelimits="true" form="prefix">max</mo>
<mspace width="1em"></mspace>
</mtd>
<mtd>
<mi>T</mi>
<mi>r</mi>
<mo stretchy="false">(</mo>
<mi mathvariant="normal">Σ<!-- Σ --></mi>
<mi>V</mi>
<mo stretchy="false">)</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mtext>subject to</mtext>
</mrow>
<mspace width="1em"></mspace>
</mtd>
<mtd>
<mi>T</mi>
<mi>r</mi>
<mo stretchy="false">(</mo>
<mi>V</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mn>1</mn>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo fence="false" stretchy="false">‖<!-- ‖ --></mo>
<mi>V</mi>
<msub>
<mo fence="false" stretchy="false">‖<!-- ‖ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
<mo>≤<!-- ≤ --></mo>
<msup>
<mi>k</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi>R</mi>
<mi>a</mi>
<mi>n</mi>
<mi>k</mi>
<mo stretchy="false">(</mo>
<mi>V</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mn>1</mn>
<mo>,</mo>
<mi>V</mi>
<mo>⪰<!-- ⪰ --></mo>
<mn>0.</mn>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}\max \quad &amp;Tr(\Sigma V)\\{\text{subject to}}\quad &amp;Tr(V)=1\\&amp;\Vert V\Vert _{0}\leq k^{2}\\&amp;Rank(V)=1,V\succeq 0.\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./c75c28b22c9fd44c17ffa9f38254a24a57dfc05d.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -5.671ex; width:34.091ex; height:12.509ex;" alt="{\displaystyle {\begin{aligned}\max \quad &amp;Tr(\Sigma V)\\{\text{subject to}}\quad &amp;Tr(V)=1\\&amp;\Vert V\Vert _{0}\leq k^{2}\\&amp;Rank(V)=1,V\succeq 0.\end{aligned}}}" loading="lazy"></span><span id="math_Eq._2" class="reference nourlexpansion" style="font-weight:bold;">Eq. 2</span></dd></dl>
<p><i>Tr</i> is the <a href="Matrix_trace" class="mw-redirect" title="Matrix trace">matrix trace</a>, and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Vert V\Vert _{0}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo fence="false" stretchy="false">‖<!-- ‖ --></mo>
<mi>V</mi>
<msub>
<mo fence="false" stretchy="false">‖<!-- ‖ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \Vert V\Vert _{0}}</annotation>
</semantics>
</math></span><img src="./4a0c3bd31ecf220db6ca3d0a90ba4087d2a55b25.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.166ex; height:2.843ex;" alt="{\displaystyle \Vert V\Vert _{0}}" loading="lazy"></span> represents the non-zero elements in matrix <i>V</i>.
The last line specifies that <i>V</i> has <a href="Matrix_rank" class="mw-redirect" title="Matrix rank">matrix rank</a> one and is <a href="Positive_semidefinite_matrix" class="mw-redirect" title="Positive semidefinite matrix">positive semidefinite</a>.
The last line means that one has <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle V=vv^{T}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>V</mi>
<mo>=</mo>
<mi>v</mi>
<msup>
<mi>v</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>T</mi>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle V=vv^{T}}</annotation>
</semantics>
</math></span><img src="./d69a46973fb2768a1892ecb906b6986a8c9a2497.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:8.53ex; height:2.676ex;" alt="{\displaystyle V=vv^{T}}" loading="lazy"></span>, so <b><a href="#math_Eq._2">Eq. 2</a></b> is equivalent to <b><a href="#math_Eq._1">Eq. 1</a></b>.
</p><p>Moreover, the rank constraint in this formulation is actually redundant, and therefore sparse PCA can be cast as the following mixed-integer semidefinite program<sup id="cite_ref-BCJ20_2-0" class="reference"><a href="#cite_note-BCJ20-2"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}\max \quad &amp;Tr(\Sigma V)\\{\text{subject to}}\quad &amp;Tr(V)=1\\&amp;\vert V_{i,i}\vert \leq z_{i},\forall i\in \{1,...,p\},\vert V_{i,j}\vert \leq {\frac {1}{2}}z_{i},\forall i,j\in \{1,...,p\}:i\neq j,\\&amp;V\succeq 0,z\in \{0,1\}^{p},\sum _{i}z_{i}\leq k\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mo movablelimits="true" form="prefix">max</mo>
<mspace width="1em"></mspace>
</mtd>
<mtd>
<mi>T</mi>
<mi>r</mi>
<mo stretchy="false">(</mo>
<mi mathvariant="normal">Σ<!-- Σ --></mi>
<mi>V</mi>
<mo stretchy="false">)</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mtext>subject to</mtext>
</mrow>
<mspace width="1em"></mspace>
</mtd>
<mtd>
<mi>T</mi>
<mi>r</mi>
<mo stretchy="false">(</mo>
<mi>V</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mn>1</mn>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo fence="false" stretchy="false">|</mo>
<msub>
<mi>V</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
<mo>,</mo>
<mi>i</mi>
</mrow>
</msub>
<mo fence="false" stretchy="false">|</mo>
<mo>≤<!-- ≤ --></mo>
<msub>
<mi>z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
<mo>,</mo>
<mi mathvariant="normal">∀<!-- ∀ --></mi>
<mi>i</mi>
<mo>∈<!-- ∈ --></mo>
<mo fence="false" stretchy="false">{</mo>
<mn>1</mn>
<mo>,</mo>
<mo>.</mo>
<mo>.</mo>
<mo>.</mo>
<mo>,</mo>
<mi>p</mi>
<mo fence="false" stretchy="false">}</mo>
<mo>,</mo>
<mo fence="false" stretchy="false">|</mo>
<msub>
<mi>V</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
</msub>
<mo fence="false" stretchy="false">|</mo>
<mo>≤<!-- ≤ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
</mrow>
<msub>
<mi>z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
<mo>,</mo>
<mi mathvariant="normal">∀<!-- ∀ --></mi>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
<mo>∈<!-- ∈ --></mo>
<mo fence="false" stretchy="false">{</mo>
<mn>1</mn>
<mo>,</mo>
<mo>.</mo>
<mo>.</mo>
<mo>.</mo>
<mo>,</mo>
<mi>p</mi>
<mo fence="false" stretchy="false">}</mo>
<mo>:</mo>
<mi>i</mi>
<mo>≠<!-- ≠ --></mo>
<mi>j</mi>
<mo>,</mo>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi>V</mi>
<mo>⪰<!-- ⪰ --></mo>
<mn>0</mn>
<mo>,</mo>
<mi>z</mi>
<mo>∈<!-- ∈ --></mo>
<mo fence="false" stretchy="false">{</mo>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
<msup>
<mo fence="false" stretchy="false">}</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>p</mi>
</mrow>
</msup>
<mo>,</mo>
<munder>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</munder>
<msub>
<mi>z</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
<mo>≤<!-- ≤ --></mo>
<mi>k</mi>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}\max \quad &amp;Tr(\Sigma V)\\{\text{subject to}}\quad &amp;Tr(V)=1\\&amp;\vert V_{i,i}\vert \leq z_{i},\forall i\in \{1,...,p\},\vert V_{i,j}\vert \leq {\frac {1}{2}}z_{i},\forall i,j\in \{1,...,p\}:i\neq j,\\&amp;V\succeq 0,z\in \{0,1\}^{p},\sum _{i}z_{i}\leq k\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./2a052ba9d91b8b40384c9a4b79692cfddca557b6.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -8.005ex; width:75.98ex; height:17.176ex;" alt="{\displaystyle {\begin{aligned}\max \quad &amp;Tr(\Sigma V)\\{\text{subject to}}\quad &amp;Tr(V)=1\\&amp;\vert V_{i,i}\vert \leq z_{i},\forall i\in \{1,...,p\},\vert V_{i,j}\vert \leq {\frac {1}{2}}z_{i},\forall i,j\in \{1,...,p\}:i\neq j,\\&amp;V\succeq 0,z\in \{0,1\}^{p},\sum _{i}z_{i}\leq k\end{aligned}}}" loading="lazy"></span><span id="math_Eq._3" class="reference nourlexpansion" style="font-weight:bold;">Eq. 3</span></dd></dl>
<p>Because of the cardinality constraint, the maximization problem is hard to solve exactly, especially when dimension <i>p</i> is high. In fact, the sparse PCA problem in <b><a href="#math_Eq._1">Eq. 1</a></b> is <a href="NP-hard" class="mw-redirect" title="NP-hard">NP-hard</a> in the strong sense.<sup id="cite_ref-TP14_3-0" class="reference"><a href="#cite_note-TP14-3"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Computational_considerations">Computational considerations</h2></div>
<p>As most sparse problems, variable selection in SPCA is a computationally intractable non-convex NP-hard problem,<sup id="cite_ref-:1_4-0" class="reference"><a href="#cite_note-:1-4"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> therefore greedy sub-optimal algorithms are often employed to find solutions.
</p><p>Note also that SPCA introduces hyperparameters quantifying in what capacity large parameter values are penalized.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> These might need <a href="Hyperparameter_optimization" title="Hyperparameter optimization">tuning</a> to achieve satisfactory performance, thereby adding to the total computational cost.
</p>
<div class="mw-heading mw-heading2"><h2 id="Algorithms_for_SPCA">Algorithms for SPCA</h2></div>
<p>Several alternative approaches (of <b><a href="#math_Eq._1">Eq. 1</a></b>) have been proposed, including
</p>
<ul><li>a regression framework,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></li>
<li>a penalized matrix decomposition framework,<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup></li>
<li>a convex relaxation/semidefinite programming framework,<sup id="cite_ref-SDP_8-0" class="reference"><a href="#cite_note-SDP-8"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></li>
<li>a generalized power method framework<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></li>
<li>an alternating maximization framework<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></li>
<li>forward-backward greedy search and exact methods using branch-and-bound techniques,<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></li>
<li>a certifiably optimal branch-and-bound approach<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup></li>
<li>Bayesian formulation framework.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup></li>
<li>A certifiably optimal mixed-integer semidefinite branch-and-cut approach <sup id="cite_ref-BCJ20_2-1" class="reference"><a href="#cite_note-BCJ20-2"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></li></ul>
<p>The methodological and theoretical developments of Sparse PCA as well as its applications in scientific studies are recently reviewed in a survey paper.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Notes_on_Semidefinite_Programming_Relaxation">Notes on Semidefinite Programming Relaxation</h3></div>
<p>It has been proposed that sparse PCA can be approximated by <a href="Semidefinite_programming" title="Semidefinite programming">semidefinite programming</a> (SDP).<sup id="cite_ref-SDP_8-1" class="reference"><a href="#cite_note-SDP-8"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> If one drops the rank constraint and relaxes the cardinality constraint by a 1-norm <a href="Convex_set" title="Convex set">convex</a> constraint, one gets a semidefinite programming relaxation, which can be solved efficiently in polynomial time:
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}\max \quad &amp;Tr(\Sigma V)\\{\text{subject to}}\quad &amp;Tr(V)=1\\&amp;\mathbf {1} ^{T}|V|\mathbf {1} \leq k\\&amp;V\succeq 0.\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mo movablelimits="true" form="prefix">max</mo>
<mspace width="1em"></mspace>
</mtd>
<mtd>
<mi>T</mi>
<mi>r</mi>
<mo stretchy="false">(</mo>
<mi mathvariant="normal">Σ<!-- Σ --></mi>
<mi>V</mi>
<mo stretchy="false">)</mo>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mtext>subject to</mtext>
</mrow>
<mspace width="1em"></mspace>
</mtd>
<mtd>
<mi>T</mi>
<mi>r</mi>
<mo stretchy="false">(</mo>
<mi>V</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mn>1</mn>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mn mathvariant="bold">1</mn>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mi>T</mi>
</mrow>
</msup>
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
<mi>V</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn mathvariant="bold">1</mn>
</mrow>
<mo>≤<!-- ≤ --></mo>
<mi>k</mi>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi>V</mi>
<mo>⪰<!-- ⪰ --></mo>
<mn>0.</mn>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}\max \quad &amp;Tr(\Sigma V)\\{\text{subject to}}\quad &amp;Tr(V)=1\\&amp;\mathbf {1} ^{T}|V|\mathbf {1} \leq k\\&amp;V\succeq 0.\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./2865937d68be33b4fa4f042cfffbce8009d28358.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -5.671ex; width:24.358ex; height:12.509ex;" alt="{\displaystyle {\begin{aligned}\max \quad &amp;Tr(\Sigma V)\\{\text{subject to}}\quad &amp;Tr(V)=1\\&amp;\mathbf {1} ^{T}|V|\mathbf {1} \leq k\\&amp;V\succeq 0.\end{aligned}}}" loading="lazy"></span><span id="math_Eq._3" class="reference nourlexpansion" style="font-weight:bold;">Eq. 3</span></dd></dl>
<p>In the second constraint, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \mathbf {1} }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mn mathvariant="bold">1</mn>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \mathbf {1} }</annotation>
</semantics>
</math></span><img src="./235ffc0f1788b720aef5caa7b97246a84421fd0e.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.337ex; height:2.176ex;" alt="{\displaystyle \mathbf {1} }" loading="lazy"></span> is a <i>p×1</i> vector of ones, and <i>|V|</i> is the matrix whose elements are the absolute values of the elements of <i>V</i>.
</p><p>The optimal solution <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle V}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>V</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle V}</annotation>
</semantics>
</math></span><img src="./af0f6064540e84211d0ffe4dac72098adfa52845.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.787ex; height:2.176ex;" alt="{\displaystyle V}" loading="lazy"></span> to the relaxed problem <b><a href="#math_Eq._3">Eq. 3</a></b> is not guaranteed to have rank one. In that case, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle V}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>V</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle V}</annotation>
</semantics>
</math></span><img src="./af0f6064540e84211d0ffe4dac72098adfa52845.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.787ex; height:2.176ex;" alt="{\displaystyle V}" loading="lazy"></span> can be truncated to retain only the dominant eigenvector.
</p><p>While the semidefinite program does not scale beyond n=300 covariates, it has been shown that a second-order cone relaxation of the semidefinite relaxation is almost as tight and successfully solves problems with n=1000s of covariates <sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Applications">Applications</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Financial_Data_Analysis">Financial Data Analysis</h3></div>
<p>Suppose ordinary PCA is applied to a dataset where each input variable represents a different asset, it may generate principal components that are weighted combination of all the assets. In contrast, sparse PCA would produce principal components that are weighted combination of only a few input assets, so one can easily interpret its meaning. Furthermore, if one uses a trading strategy based on these principal components, fewer assets imply less transaction costs.
</p>
<div class="mw-heading mw-heading3"><h3 id="Biology">Biology</h3></div>
<p>Consider a dataset where each input variable corresponds to a specific gene. Sparse PCA can produce a principal component that involves only a few genes, so researchers can focus on these specific genes for further analysis.
</p>
<div class="mw-heading mw-heading3"><h3 id="High-dimensional_Hypothesis_Testing">High-dimensional Hypothesis Testing</h3></div>
<p>Contemporary datasets often have the number of input variables (<span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle p}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>p</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle p}</annotation>
</semantics>
</math></span><img src="./81eac1e205430d1f40810df36a0edffdc367af36.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; margin-left: -0.089ex; width:1.259ex; height:2.009ex;" alt="{\displaystyle p}" loading="lazy"></span>) comparable with or even much larger than the number of samples (<span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>n</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle n}</annotation>
</semantics>
</math></span><img src="./a601995d55609f2d9f5e233e36fbe9ea26011b3b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.395ex; height:1.676ex;" alt="{\displaystyle n}" loading="lazy"></span>). It has been shown that if <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle p/n}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>p</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mi>n</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle p/n}</annotation>
</semantics>
</math></span><img src="./3265bb7382222c10e1b6f77bf9fd781b2ebf83dc.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; margin-left: -0.089ex; width:3.816ex; height:2.843ex;" alt="{\displaystyle p/n}" loading="lazy"></span> does not converge to zero, the classical PCA is not <a href="Consistency_(statistics)" title="Consistency (statistics)">consistent</a>. In other words, if we let <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle k=p}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>k</mi>
<mo>=</mo>
<mi>p</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle k=p}</annotation>
</semantics>
</math></span><img src="./ce9e3515dc907812a8d3b1c6bd035977194cce80.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:5.479ex; height:2.509ex;" alt="{\displaystyle k=p}" loading="lazy"></span> in <b><a href="#math_Eq._1">Eq. 1</a></b>, then
the optimal value does not converge to the largest eigenvalue of data population when the sample size <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle n\rightarrow \infty }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>n</mi>
<mo stretchy="false">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle n\rightarrow \infty }</annotation>
</semantics>
</math></span><img src="./9702f04f2d0e5b887b99faeeffb0c4cfd8263eee.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:7.333ex; height:1.843ex;" alt="{\displaystyle n\rightarrow \infty }" loading="lazy"></span>, and the optimal solution does not converge to the direction of maximum variance.
But sparse PCA can retain consistency even if <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle p\gg n.}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>p</mi>
<mo>≫<!-- ≫ --></mo>
<mi>n</mi>
<mo>.</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle p\gg n.}</annotation>
</semantics>
</math></span><img src="./2a3c9d4c990f0883b9aa7b1dd2c8dd0bec2404e2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; margin-left: -0.089ex; width:6.914ex; height:2.176ex;" alt="{\displaystyle p\gg n.}" loading="lazy"></span>
</p><p>The <i>k</i>-sparse largest eigenvalue (the optimal value of <b><a href="#math_Eq._1">Eq. 1</a></b>) can be used to discriminate an isometric model, where every direction has the same variance, from a spiked covariance model in high-dimensional setting.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> Consider a hypothesis test where the null hypothesis specifies that data <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle X}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>X</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle X}</annotation>
</semantics>
</math></span><img src="./68baa052181f707c662844a465bfeeb135e82bab.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.98ex; height:2.176ex;" alt="{\displaystyle X}" loading="lazy"></span> are generated from a multivariate normal distribution with mean 0 and covariance equal to an identity matrix, and the alternative hypothesis specifies that data <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle X}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>X</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle X}</annotation>
</semantics>
</math></span><img src="./68baa052181f707c662844a465bfeeb135e82bab.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.98ex; height:2.176ex;" alt="{\displaystyle X}" loading="lazy"></span> is generated from a spiked model with signal strength <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \theta }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>θ<!-- θ --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \theta }</annotation>
</semantics>
</math></span><img src="./6e5ab2664b422d53eb0c7df3b87e1360d75ad9af.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.09ex; height:2.176ex;" alt="{\displaystyle \theta }" loading="lazy"></span>:
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle H_{0}:X\sim N(0,I_{p}),\quad H_{1}:X\sim N(0,I_{p}+\theta vv^{T}),}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>H</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
<mo>:</mo>
<mi>X</mi>
<mo>∼<!-- ∼ --></mo>
<mi>N</mi>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo>,</mo>
<msub>
<mi>I</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>p</mi>
</mrow>
</msub>
<mo stretchy="false">)</mo>
<mo>,</mo>
<mspace width="1em"></mspace>
<msub>
<mi>H</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<mo>:</mo>
<mi>X</mi>
<mo>∼<!-- ∼ --></mo>
<mi>N</mi>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo>,</mo>
<msub>
<mi>I</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>p</mi>
</mrow>
</msub>
<mo>+</mo>
<mi>θ<!-- θ --></mi>
<mi>v</mi>
<msup>
<mi>v</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>T</mi>
</mrow>
</msup>
<mo stretchy="false">)</mo>
<mo>,</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle H_{0}:X\sim N(0,I_{p}),\quad H_{1}:X\sim N(0,I_{p}+\theta vv^{T}),}</annotation>
</semantics>
</math></span><img src="./91d621d140b778ef746a0f903a1b541b50f0fe8c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:47.884ex; height:3.343ex;" alt="{\displaystyle H_{0}:X\sim N(0,I_{p}),\quad H_{1}:X\sim N(0,I_{p}+\theta vv^{T}),}" loading="lazy"></span></dd></dl>
<p>where <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle v\in \mathbb {R} ^{p}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>v</mi>
<mo>∈<!-- ∈ --></mo>
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="double-struck">R</mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mi>p</mi>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle v\in \mathbb {R} ^{p}}</annotation>
</semantics>
</math></span><img src="./5211e2a7d81c7c652e972e5d7c42699e0d5bbbd3.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.706ex; height:2.343ex;" alt="{\displaystyle v\in \mathbb {R} ^{p}}" loading="lazy"></span> has only <i>k</i> non-zero coordinates. The largest <i>k</i>-sparse eigenvalue can discriminate the two hypotheses if and only if <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \theta >\Theta ({\sqrt {k\log(p)/n}})}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>θ<!-- θ --></mi>
<mo>&gt;</mo>
<mi mathvariant="normal">Θ<!-- Θ --></mi>
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<msqrt>
<mi>k</mi>
<mi>log</mi>
<mo>⁡<!-- ⁡ --></mo>
<mo stretchy="false">(</mo>
<mi>p</mi>
<mo stretchy="false">)</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mi>n</mi>
</msqrt>
</mrow>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \theta &gt;\Theta ({\sqrt {k\log(p)/n}})}</annotation>
</semantics>
</math></span><img src="./733f3451dc11b0e690d6c505f2accad3578957ba.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.838ex; width:20.236ex; height:4.843ex;" alt="{\displaystyle \theta >\Theta ({\sqrt {k\log(p)/n}})}" loading="lazy"></span>.
</p><p>Since computing <i>k</i>-sparse eigenvalue is NP-hard, one can approximate it by the optimal value of semidefinite programming relaxation (<b><a href="#math_Eq._3">Eq. 3</a></b>). If that case, we can discriminate the two hypotheses if <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \theta >\Theta ({\sqrt {k^{2}\log(p)/n}})}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>θ<!-- θ --></mi>
<mo>&gt;</mo>
<mi mathvariant="normal">Θ<!-- Θ --></mi>
<mo stretchy="false">(</mo>
<mrow class="MJX-TeXAtom-ORD">
<msqrt>
<msup>
<mi>k</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
<mi>log</mi>
<mo>⁡<!-- ⁡ --></mo>
<mo stretchy="false">(</mo>
<mi>p</mi>
<mo stretchy="false">)</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo>/</mo>
</mrow>
<mi>n</mi>
</msqrt>
</mrow>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \theta &gt;\Theta ({\sqrt {k^{2}\log(p)/n}})}</annotation>
</semantics>
</math></span><img src="./1407bb125a86a69d6b8d8cbd11c45c9f0c8b3915.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.671ex; width:21.29ex; height:4.843ex;" alt="{\displaystyle \theta >\Theta ({\sqrt {k^{2}\log(p)/n}})}" loading="lazy"></span>. The additional <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\sqrt {k}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<msqrt>
<mi>k</mi>
</msqrt>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\sqrt {k}}}</annotation>
</semantics>
</math></span><img src="./de05da7afd02cfd22d059bf17a0c165e3079d5d4.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.147ex; height:3.009ex;" alt="{\displaystyle {\sqrt {k}}}" loading="lazy"></span> term cannot be improved by any other polynomial time algorithm if the <a href="Planted_clique" title="Planted clique">planted clique conjecture</a> holds.
</p>
<div class="mw-heading mw-heading2"><h2 id="Software/source_code">Software/source code</h2></div>
<ul><li>amanpg - R package for Sparse PCA using the Alternating Manifold Proximal Gradient Method <sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup></li>
<li>elasticnet – R package for Sparse Estimation and Sparse PCA using Elastic-Nets <sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup></li>
<li>epca – R package for exploratory principal component analysis for large-scale dataset, including sparse principal component analysis and sparse matrix approximation. <sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup></li>
<li>nsprcomp - R package for sparse and/or non-negative PCA based on thresholded power iterations<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Scikit-learn" title="Scikit-learn">scikit-learn</a> – Python library for machine learning which contains Sparse PCA and other techniques in the decomposition module.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup></li></ul>
<p><br>
</p>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"> The term loadings is inappropriately used for these vectors, which should be called coefficients, instead. The naming comes from the term loadings used in factor analysis to design the values generating the common covariance matrix. Since in standard PCA the loadings are equal to the coefficients, the term loadings has been used for the coefficients. This is quite unfortunate, because in SPCA the coefficients are not equal to the loadings.</span>
</li>
</ol></div></div>
<p><br>
</p>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-BCJ20-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-BCJ20_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-BCJ20_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">
<style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFDimitris_BertsimasRyan_Cory-WrightJean_Pauphilet2020" class="citation arxiv cs1">Dimitris Bertsimas; Ryan Cory-Wright; Jean Pauphilet (2020). "Solving Large-Scale Sparse PCA to Certifiable (Near) Optimality". <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/2005.05195">2005.05195</a></span> [<a rel="nofollow" class="external text" href="https://arxiv.org/archive/math.OC">math.OC</a>].</cite></span>
</li>
<li id="cite_note-TP14-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-TP14_3-0">^</a></b></span> <span class="reference-text">
<cite id="CITEREFAndreas_M._TillmannMarc_E._Pfetsch2013" class="citation journal cs1">Andreas M. Tillmann; Marc E. Pfetsch (2013). "The Computational Complexity of the Restricted Isometry Property, the Nullspace Property, and Related Concepts in Compressed Sensing". <i><a href="IEEE_Transactions_on_Information_Theory" title="IEEE Transactions on Information Theory">IEEE Transactions on Information Theory</a></i>. <b>60</b> (2): 1248–1259. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/1205.2081">1205.2081</a></span>. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.760.2559">10.1.1.760.2559</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FTIT.2013.2290112">10.1109/TIT.2013.2290112</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:2788088">2788088</a>.</cite></span>
</li>
<li id="cite_note-:1-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-:1_4-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFMoghaddamWeissAvidan2007" class="citation book cs1">Moghaddam, Baback; Weiss, Yair; Avidan, Shai (2007-09-07). Schölkopf, Bernhard; Platt, John; Hofmann, Thomas (eds.). <a rel="nofollow" class="external text" href="https://direct.mit.edu/books/book/3168/Advances-in-Neural-Information-Processing-Systems"><i>Advances in Neural Information Processing Systems 19: Proceedings of the 2006 Conference</i></a>. The MIT Press. pp.&nbsp;<span class="nowrap">915–</span>922. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.7551%2Fmitpress%2F7503.001.0001">10.7551/mitpress/7503.001.0001</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-262-25691-9</bdi>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFZouand_Tibshirani2006" class="citation journal cs1">Zou, Hui; and Tibshirani, Robert (2006-06-01). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.tandfonline.com/doi/abs/10.1198/106186006X113430">"Sparse Principal Component Analysis"</a></span>. <i>Journal of Computational and Graphical Statistics</i>. <b>15</b> (2): <span class="nowrap">265–</span>286. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1198%2F106186006X113430">10.1198/106186006X113430</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1061-8600">1061-8600</a>.</cite> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{cite journal}}</code>: </span><span class="cs1-visible-error citation-comment"><code class="cs1-code">|first2=</code> missing <code class="cs1-code">|last2=</code> (help)</span><span class="cs1-maint citation-comment">CS1 maint: multiple names: authors list (link)</span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text">
<cite id="CITEREFHui_ZouTrevor_HastieRobert_Tibshirani2006" class="citation journal cs1">Hui Zou; Trevor Hastie; Robert Tibshirani (2006). <a rel="nofollow" class="external text" href="http://www-stat.stanford.edu/~hastie/Papers/spc_jcgs.pdf">"Sparse principal component analysis"</a> <span class="cs1-format">(PDF)</span>. <i><a href="Journal_of_Computational_and_Graphical_Statistics" title="Journal of Computational and Graphical Statistics">Journal of Computational and Graphical Statistics</a></i>. <b>15</b> (2): <span class="nowrap">262–</span>286. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.62.580">10.1.1.62.580</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1198%2F106186006x113430">10.1198/106186006x113430</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:5730904">5730904</a>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text">
<cite id="CITEREFFan_ChenKarl_Rohe2021" class="citation journal cs1">Fan Chen; Karl Rohe (2021). <a rel="nofollow" class="external text" href="https://www.tandfonline.com/eprint/8VKDCFHDPTQHXB47MXIR/full?target=10.1080/10618600.2023.2256502">"A New Basis for Sparse Principal Component Analysis"</a>. <i><a href="Journal_of_Computational_and_Graphical_Statistics" title="Journal of Computational and Graphical Statistics">Journal of Computational and Graphical Statistics</a></i>. <b>33</b> (2): <span class="nowrap">421–</span>434. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/2007.00596">2007.00596</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1080%2F10618600.2023.2256502">10.1080/10618600.2023.2256502</a>.</cite></span>
</li>
<li id="cite_note-SDP-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-SDP_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-SDP_8-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">
<cite id="CITEREFAlexandre_d’AspremontLaurent_El_GhaouiMichael_I._JordanGert_R._G._Lanckriet2007" class="citation journal cs1">Alexandre d’Aspremont; Laurent El Ghaoui; Michael I. Jordan; Gert R. G. Lanckriet (2007). <a rel="nofollow" class="external text" href="http://www.cmap.polytechnique.fr/~aspremon/PDF/sparsesvd.pdf">"A Direct Formulation for Sparse PCA Using Semidefinite Programming"</a> <span class="cs1-format">(PDF)</span>. <i><a href="SIAM_Review" class="mw-redirect" title="SIAM Review">SIAM Review</a></i>. <b>49</b> (3): <span class="nowrap">434–</span>448. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/cs/0406021">cs/0406021</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1137%2F050645506">10.1137/050645506</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:5490061">5490061</a>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text">
<cite id="CITEREFMichel_JourneeYurii_NesterovPeter_RichtarikRodolphe_Sepulchre2010" class="citation journal cs1">Michel Journee; Yurii Nesterov; Peter Richtarik; Rodolphe Sepulchre (2010). <a rel="nofollow" class="external text" href="http://jmlr.csail.mit.edu/papers/volume11/journee10a/journee10a.pdf">"Generalized Power Method for Sparse Principal Component Analysis"</a> <span class="cs1-format">(PDF)</span>. <i><a href="Journal_of_Machine_Learning_Research" title="Journal of Machine Learning Research">Journal of Machine Learning Research</a></i>. <b>11</b>: <span class="nowrap">517–</span>553. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/0811.4724">0811.4724</a></span>. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2008arXiv0811.4724J">2008arXiv0811.4724J</a>. CORE Discussion Paper 2008/70.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text">
<cite id="CITEREFPeter_RichtarikMajid_JahaniS._Damla_AhipasaogluMartin_Takac2021" class="citation journal cs1">Peter Richtarik; Majid Jahani; S. Damla Ahipasaoglu; Martin Takac (2021). <a rel="nofollow" class="external text" href="https://link.springer.com/article/10.1007/s11081-020-09562-3">"Alternating Maximization: Unifying Framework for 8 Sparse PCA Formulations and Efficient Parallel Codes"</a>. <i>Optimization and Engineering</i>. <b>22</b> (3): <span class="nowrap">1493–</span>1519. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/1212.4137">1212.4137</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs11081-020-09562-3">10.1007/s11081-020-09562-3</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:2549610">2549610</a>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text">
<cite id="CITEREFBaback_MoghaddamYair_WeissShai_Avidan2005" class="citation conference cs1">Baback Moghaddam; Yair Weiss; Shai Avidan (2005). <a rel="nofollow" class="external text" href="http://books.nips.cc/papers/files/nips18/NIPS2005_0643.pdf">"Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms"</a> <span class="cs1-format">(PDF)</span>. <i>Advances in Neural Information Processing Systems</i>. Vol.&nbsp;18. MIT Press.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text">
<cite id="CITEREFLauren_BerkDimitris_Bertsimas2019" class="citation journal cs1">Lauren Berk; Dimitris Bertsimas (2019). "Certifiably optimal sparse principal component analysis". <i><a href="Mathematical_Programming_Computation" class="mw-redirect" title="Mathematical Programming Computation">Mathematical Programming Computation</a></i>. <b>11</b> (3). Springer: <span class="nowrap">381–</span>420. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs12532-018-0153-6">10.1007/s12532-018-0153-6</a>. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://hdl.handle.net/1721.1%2F131566">1721.1/131566</a></span>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:126998398">126998398</a>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text">
<cite id="CITEREFYue_GuanJennifer_Dy2009" class="citation journal cs1">Yue Guan; <a href="Jennifer_Dy" title="Jennifer Dy">Jennifer Dy</a> (2009). <a rel="nofollow" class="external text" href="http://jmlr.csail.mit.edu/proceedings/papers/v5/guan09a/guan09a.pdf">"Sparse Probabilistic Principal Component Analysis"</a> <span class="cs1-format">(PDF)</span>. <i>Journal of Machine Learning Research Workshop and Conference Proceedings</i>. <b>5</b>: 185.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text">
<cite id="CITEREFHui_ZouLingzhou_Xue2018" class="citation journal cs1">Hui Zou; Lingzhou Xue (2018). <a rel="nofollow" class="external text" href="https://doi.org/10.1109%2Fjproc.2018.2846588">"A Selective Overview of Sparse Principal Component Analysis"</a>. <i><a href="Proceedings_of_the_IEEE" title="Proceedings of the IEEE">Proceedings of the IEEE</a></i>. <b>106</b> (8): <span class="nowrap">1311–</span>1320. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1109%2Fjproc.2018.2846588">10.1109/jproc.2018.2846588</a></span>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text">
<cite id="CITEREFDimitris_BertsimasRyan_Cory-Wright2020" class="citation journal cs1">Dimitris Bertsimas; Ryan Cory-Wright (2020). <a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.orl.2019.12.003">"On polyhedral and second-order cone decompositions of semidefinite optimization problems"</a>. <i><a href="Operations_Research_Letters" title="Operations Research Letters">Operations Research Letters</a></i>. <b>48</b> (1). Elsevier: <span class="nowrap">78–</span>85. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/1910.03143">1910.03143</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.orl.2019.12.003">10.1016/j.orl.2019.12.003</a></span>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text">
<cite id="CITEREFQuentin_BerthetPhilippe_Rigollet2013" class="citation journal cs1">Quentin Berthet; Philippe Rigollet (2013). "Optimal Detection of Sparse Principal Components in High Dimension". <i><a href="Annals_of_Statistics" title="Annals of Statistics">Annals of Statistics</a></i>. <b>41</b> (1): <span class="nowrap">1780–</span>1815. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/1202.5070">1202.5070</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1214%2F13-aos1127">10.1214/13-aos1127</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:7162068">7162068</a>.</cite></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external autonumber" href="https://cran.r-project.org/web/packages/amanpg/index.html">[1]</a> <a rel="nofollow" class="external free" href="https://cran.r-project.org/web/packages/amanpg/index.html">https://cran.r-project.org/web/packages/amanpg/index.html</a></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external autonumber" href="https://cran.r-project.org/web/packages/elasticnet/index.html">[2]</a> <a rel="nofollow" class="external free" href="https://cran.r-project.org/web/packages/elasticnet/index.html">https://cran.r-project.org/web/packages/elasticnet/index.html</a></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external autonumber" href="https://cran.r-project.org/web/packages/epca/index.html">[3]</a> <a rel="nofollow" class="external free" href="https://cran.r-project.org/web/packages/epca/index.html">https://cran.r-project.org/web/packages/epca/index.html</a></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external autonumber" href="https://cran.r-project.org/web/packages/nsprcomp/index.html">[4]</a> <a rel="nofollow" class="external free" href="https://cran.r-project.org/web/packages/nsprcomp/index.html">https://cran.r-project.org/web/packages/nsprcomp/index.html</a></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external autonumber" href="http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.SparsePCA.html">[5]</a> <a rel="nofollow" class="external free" href="http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.SparsePCA.html">http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.SparsePCA.html</a></span>
</li>
</ol></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-22" href="https://en.wikipedia.org/wiki/?title=Sparse_PCA&amp;oldid=1301908312">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>